package com.hdphone.zljutils.inter;

import android.database.Cursor;
import android.database.sqlite.SQLiteClosable;

import java.io.Closeable;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;

public interface IBeanUtil {
    <T> T cloneTo(T src);

    /**
     * 判断对象为null
     */
    boolean isNull(Object obj);

    /**
     * 判断对象不为null
     */
    boolean isNotNull(Object obj);

    /**
     * 判断对象不为null或为空
     */
    boolean isNotAllEmpty(Object obj);

    /**
     * 判断对象为null或为空
     */
    boolean isNEmpty(Object obj);

    /**
     * 判断字符串,集合,数组不为空
     */
    boolean isNotEmpty(Object obj);

    /**
     * 判断字符串为空，集合为空，数组为空(后续可以拓展hashSet,hashMap ...)
     */
    boolean isEmpty(Object obj);

    /**
     * 判断当前索引是否存在
     *
     * @param list
     * @param position
     * @return
     */
    boolean containIndex(List<?> list, int position);

    /**
     * 关闭所有需要关闭的资源
     */
    void close(Object closeObj);


    /**
     * 移除空对象 移除data里面的list的空对象 过滤三层
     *
     * @param response
     */
    void removeListNullValue(Object response);

}
